home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / c / xw2.000 / xw2 / xw / csource / xbw.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-12  |  29.2 KB  |  946 lines

  1. /* ================= XBW.H ============================================= */
  2.  
  3. /*#define XbW_SYSDEF_GNU_VERSION*/
  4. /*#define XbW_SYSDEF_X11_VERSION*/
  5.  
  6. #ifndef XbW_SYSDEF_GNU_VERSION
  7. #ifndef XbW_SYSDEF_X11_VERSION
  8. #define XbW_SYSDEF_TC3_VERSION
  9. #endif
  10. #endif
  11.  
  12.  
  13.  
  14.  
  15. #ifdef XbW_SYSDEF_TC3_VERSION
  16. #define XbW_SYSDEF_USE_XBCOMFU
  17. /* #define XbWDGr_IBM8514 1 */
  18. #define XbW_SYSDEF_USE_LARGDBK
  19. #define XbW_SYSDEF_USE_OSCFUNC
  20. #endif
  21.  
  22.  
  23. #ifdef XbWDGr_IBM8514
  24.   #define XbWDMs_SoftMs 1
  25. //  #define ALTER_MAUSTREIBER 1
  26. #else
  27.   #define HARDWARE_MAUS 1
  28. #endif
  29.  
  30.  
  31.  
  32. #include <stdlib.h>
  33. #include <stdio.h>
  34. #include <string.h>
  35. #include <ctype.h>
  36. #include <time.h>
  37.  
  38. #ifdef XbW_SYSDEF_GNU_VERSION
  39. #include <unistd.h>
  40. #include <gppconio.h>
  41. #include <grx.h>
  42. #include <mousex.h>
  43. #include <pc.h>
  44. #include <dos.h>
  45. #include <dir.h>
  46. #endif
  47.  
  48. #ifdef XbW_SYSDEF_TC3_VERSION
  49. #include <math.h>
  50. #include <conio.h>
  51. #include <alloc.h>
  52. #include <dos.h>
  53. #include <dir.h>
  54. #include <graphics.h>
  55. #include <process.h>
  56. #endif
  57.  
  58.  
  59.  
  60.  
  61. #ifdef XbW_SYSDEF_GNU_VERSION
  62.  
  63. #define
  64. #define far
  65. #define USE_PC_SOUND
  66. #endif
  67.  
  68. #ifdef XbW_SYSDEF_X11_VERSION
  69.  
  70. #define huge
  71. #define far
  72.  
  73. #endif
  74.  
  75. #ifndef XbW_SYSDEF_TC3_VERSION
  76. #include <X11/Xlib.h>
  77. #include <X11/Xutil.h>
  78. #include <X11/cursorfont.h>
  79. #include <unistd.h>
  80. #endif
  81.  
  82. #ifdef XbW_SYSDEF_TC3_VERSION
  83. /* Alle defines, die man braucht, wenn turboc vorhanden */
  84.  
  85. #define USE_PC_SOUND
  86. #define USE_8086_INTERRUPTS
  87.  
  88. #else
  89.  
  90. /* Alle defines, die man braucht, wenn turboc nicht vorhanden */
  91. struct viewporttype{
  92.    int left, top, right, bottom;
  93.    int clip;
  94.    };
  95.  
  96. struct REGPACK{
  97.     unsigned int   r_ax, r_bx, r_cx, r_dx;
  98.     unsigned int   r_bp, r_si, r_di, r_ds, r_es, r_flags;
  99.     };
  100.  
  101. enum putimage_ops {     /* BitBlt operators for putimage */
  102.     COPY_PUT,           /* MOV */
  103.     XOR_PUT,            /* XOR */
  104.     OR_PUT,             /* OR  */
  105.     AND_PUT,            /* AND */
  106.     NOT_PUT             /* NOT */
  107.     };
  108.  
  109. #ifndef XbW_SYSDEF_X11_VERSION
  110. typedef long    fpos_t;
  111. #endif
  112.  
  113. #endif
  114.  
  115.  
  116.  
  117. #ifdef XbW_SYSDEF_X11_VERSION
  118. /*#define XbWDSy_FontName "-bitstream-courier-medium-r-normal--11-0-0-0-m-0-iso8859-1"*/
  119. /*#define XbWDSy_FontName   "-schumacher-*-*-semicondensed--11-*-*-*-c-*-iso8859-1"*/
  120. #define XbWDSy_FontName "-schumacher-*-medium-*-*--11-*-*-*-c-*-iso8859-1"
  121. #define XbWDSy_WindowName "XbW: X without \"bells and whistles\""
  122. #endif
  123.  
  124.  
  125.  
  126.  
  127.  
  128. #define XbWDMf_CommandOk 0
  129. #define XbWDMf_CommandErr 1
  130. #define XbWDMf_EXETaskStart 1
  131. #define XbWDMf_CommandErr 1
  132. #define XbWDOb_DrawRedBox 3
  133.  
  134. #define XbWDDb_DbIPtr long              /* Offset relativ zum Projektbeginn       */
  135. #define XbWDDb_DbITyp int               /* Typ eines Eintrages in der XbWDDb_Dbk */
  136. #define XbWDDb_Handle XbWDDb_DbIPtr
  137. #define XbWDDb_Get 0
  138. #define XbWDDb_Put 1
  139. #define XbWDDb_RecursiveAccess 1        /* Standard */
  140. #define XbWDDb_DirectAccess    0        /* Nur fuer Sonderfaelle */
  141.  
  142. #define XbWDTb_PckTLen 250
  143.  
  144. #define XbWDGr_Write 0
  145. #define XbWDGr_XOR   1
  146. #define XbWDGr_OR    2
  147. #define XbWDGr_AND   3
  148.  
  149. #define XbWDDb_NoVar    0x00  /* KEINE VARIABLE!! */
  150. #define XbWDDb_Int      0x10
  151. #define XbWDDb_Dbl      0x20
  152. #define XbWDDb_IPtr     0x30
  153. #define XbWDDb_Cll      0x40  /* enthaelt nummern von systembefehlen (??)      */
  154. #define XbWDDb_Byt      0x50
  155. #define XbWDDb_NPtr     0x60
  156. #define XbWDDb_GPtr     0x70  /* Zeiger auf den Beginn einer Gruppe            */
  157. #define XbWDDb_FPtr     0x80  /* Naechstes ITM (bei Verlaengerung einer Gruppe)*/
  158. #define XbWDDb_Str      0x90
  159.  
  160. #define XbWDDb_Typ     0xF0
  161. #define XbWDDb_NLen     0x0F
  162.  
  163.  
  164. #define XbWDDb_Dbk   ((XbWDDb_Sys   *)XbWVDb_DbkStrt)
  165.  
  166.  
  167. #define XbWDDb_DbISys (XbWDDb_DbIVar  *)(((XbWDDb_Sys  *)XbWVDb_DbkStrt)->T_ITM_SYS)
  168. #define XbWDDb_DbIPrj (XbWDDb_DbIVar  *)(((XbWDDb_Sys  *)XbWVDb_DbkStrt)->T_ITM_PRJ)
  169. #define XbWDDb_DbIGrp (XbWDDb_DbIStr  *)(((XbWDDb_Sys  *)XbWVDb_DbkStrt)->T_ITM_GRP)
  170.  
  171.  
  172. #define XbWDWd_MaxWdw 300
  173. #define XbWDWd_BordH   15
  174.  
  175.  
  176. #ifdef XbWDGr_IBM8514
  177. #define XbWDGr_AkDrivr IBM8514
  178. #define XbWDGr_AkGrMod IBM8514HI
  179. #define XbWDGr_BkColor XbWVGr_LGray
  180. #define XbWDGr_HwBkGd XbWVGr_Black
  181. #define XbWDGr_FontSiz 0
  182. #define XbWDGr_AkFont SMALL_FONT
  183. #else
  184. #define XbWDGr_AkDrivr VGA
  185. #define XbWDGr_AkGrMod VGAHI
  186. #define XbWDGr_HwBkGd XbWVGr_Black
  187. #define XbWDGr_BkColor XbWVGr_LGray
  188. #define XbWDGr_FontSiz 1
  189. #define XbWDGr_AkFont DEFAULT_FONT
  190. #endif
  191.  
  192.  
  193. #define XbWDGr_GrKreuz 1
  194. #define XbWDGr_DiKreuz 2
  195. #define XbWDGr_ScKreuz 4
  196. #define XbWDGr_Kreis  8
  197. #define XbWDGr_DashdBd 16
  198. #define XbWDGr_RedBord 32
  199. #define XbWDGr_RedBox 64
  200. #define XbWDGr_Overbox 128
  201. #define XbWDGr_Opentop 256
  202.  
  203. #define XbWDMs_Pix 13
  204.  
  205.  
  206.  
  207. #define XbWDOb_GtMinP  1
  208. #define XbWDOb_GtDspP 2
  209. #define XbWDOb_GtEdtP 4
  210. #define XbWDOb_GtAllP  7
  211. #define XbWDOb_GtFrsO   8
  212. #define XbWDOb_GtNxtO   16
  213. #define XbWDOb_GetAnO     32
  214. #define XbWDOb_GtLstO   64
  215. #define XbWDOb_GtAnfO 128
  216.  
  217. #define XbWDMf_NoPara 50
  218. #define XbWDMf_StrToL 51
  219.  
  220.  
  221. #define XbWDMf_MaxPar 100                /* Maximale Zahl Befehlsparameter */
  222.  
  223. #define  XbWDMf_IntPar 0x10
  224. #define  XbWDMf_StrPar 0x20
  225. #define   XbWDMf_VPPar 0x30
  226. #define   XbWDMf_VIPar 0x40
  227. #define   XbWDMf_VLPar 0x50
  228. #define XbWDMf_NULPar 0x60
  229. #define  XbWDMf_AnzPar 0x70
  230. #define  XbWDMf_DblPar 0x80
  231.  
  232. #define XbWDMf_SP_R(no,sstr,func) case no:\
  233.   if (tfun) {XbWVMf_com[no]=sstr;}\
  234.   else {return(func(&XbWVMf_P));};\
  235.   break;
  236.  
  237. #define XbWDMf_ST_R(no,sstr,func) case no:\
  238.   if (tfun) {XbWVMf_com[no]=sstr;}\
  239.   else {return(func(&XbWVMf_P,&XbWVMf_T));};\
  240.   break;
  241.  
  242. #define XbWDMf_ST_E(no,sstr,func) case no:\
  243.   if (tfun) {XbWVMf_com[no]=sstr;}\
  244.   else {func(&XbWVMf_P,&XbWVMf_T);};\
  245.   break;
  246.  
  247. #define XbWDMf_SP__(no,sstr,func) case no:\
  248.   if (tfun) {XbWVMf_com[no]=sstr;}\
  249.   else {func(&XbWVMf_P); return(0); };\
  250.   break;
  251.  
  252. #define XbWDMf_S_ER(no,sstr,func) case no:\
  253.   if (tfun) {XbWVMf_com[no]=sstr;}\
  254.   else {return(func());};\
  255.   break;
  256.  
  257. #define XbWDMf_S_E_(no,sstr,func) case no:\
  258.   if (tfun) {XbWVMf_com[no]=sstr;}\
  259.   else {func(); return(0); };\
  260.   break;
  261.  
  262. #define XbWDMf_GtLine                         \
  263.   if (r_akt == r_len) {                  \
  264.     if (MetaFile != NULL){                       \
  265.       r_len = fread(rohzeile,1,256,MetaFile);   r_akt = 0;\
  266.       }                                  \
  267.     else {                               \
  268.       XbWVMf_eof = 1;              \
  269.       r_akt = 0;                         \
  270.       r_len = 0;                         \
  271.       };                                 \
  272.     };                                   \
  273.   if (!r_len){                           \
  274.     XbWVMf_eof = 1;                \
  275.     };                                   \
  276.  
  277. #define XbWDMf_IgnLin                       \
  278.   {                                      \
  279.   int mm=0;                              \
  280.   while(!mm)                             \
  281.     {                                    \
  282.     switch (rohzeile[r_akt])             \
  283.       {                                  \
  284.       case  0 : mm++; break;             \
  285.       case 10 : mm++; break;             \
  286.       case 13 : mm++; break;             \
  287.       default : r_akt++; XbWDMf_GtLine; break;\
  288.       };                                 \
  289.     };                                   \
  290.   }
  291.  
  292. #define XbWDMf_SekEOL                         \
  293.   {                                      \
  294.   int mm=0;                              \
  295.   while(!mm)                             \
  296.     {                                    \
  297.     switch (rohzeile[r_akt])             \
  298.       {                                  \
  299.       case  0 : mm++; break;             \
  300.       case 10 : mm++; break;             \
  301.       case 13 : mm++; break;             \
  302.       case ';': StarteProcedure = 1; r_akt++;XbWDMf_GtLine;break;\
  303.       case '|': mm++; break;             \
  304.       case ',': mm++; break;             \
  305.       case ' ': mm++; break;             \
  306.       case '\t': mm++; break;             \
  307.       default : r_akt++; XbWDMf_GtLine; break;\
  308.       };                                 \
  309.     };                                   \
  310.   r_akt++;XbWDMf_GtLine;                      \
  311.   }
  312.  
  313. #define XbWDMf_CpyCom(zz)                 \
  314.   {                                      \
  315.   int ii=0;                              \
  316.   int mm=0;                              \
  317.   while(!mm)                             \
  318.     {                                    \
  319.     switch (rohzeile[r_akt])             \
  320.       {                                  \
  321.       case  0 : mm++; zz[ii]=0;break;    \
  322.       case ';':                          \
  323.         StarteProcedure = 1;             \
  324.         mm++; zz[ii]=0; break;           \
  325.       case '{': mm++; zz[ii]=0; break;   \
  326.       default :                          \
  327.         zz[ii] = rohzeile[r_akt];ii++;   \
  328.         r_akt++; XbWDMf_GtLine; break;        \
  329.       };                                 \
  330.     };                                   \
  331.   }
  332.  
  333. #define XbWDMf_CpyLab(zz)                   \
  334.   {                                      \
  335.   int ii=0;                              \
  336.   int mm=0;                              \
  337.   while(!mm)                             \
  338.     {                                    \
  339.     switch (rohzeile[r_akt])             \
  340.       {                                  \
  341.       case  0 : zz[ii]=0; mm++; break;   \
  342.       case '!':                          \
  343.         mm++; zz[ii]=0; break;           \
  344.       default :                          \
  345.         zz[ii] = rohzeile[r_akt];ii++;   \
  346.         r_akt++; XbWDMf_GtLine; break;        \
  347.       };                                 \
  348.     };                                   \
  349.   }
  350.  
  351.  
  352. #define XbWDMf_MaxCmd 88
  353.  
  354. #define XbWDMf_BfStrL 100
  355.  
  356. #define XbWDEd_EndItm 0
  357. #define XbWDEd_GoRigt 1
  358. #define XbWDEd_GoDown 2
  359.  
  360. #define XbWDEd_UnLine 1
  361. #define XbWDEd_VertLn 2
  362.  
  363. #define XbWDTb_MxVwPrt 30
  364.  
  365. #define XbWDMx_OpnErr         10001
  366. #define XbWDMx_EofGrp 10002
  367. #define XbWDMx_RIntEg        10003
  368. #define XbWDMx_RDblEg        10004
  369. #define XbWDMx_RStrEg        10005
  370. #define XbWDMx_RIFnoI         10006
  371. #define XbWDMx_RDFnoD         10007
  372. #define XbWDMx_RSFnoS         10008
  373. #define XbWDMx_EndOfF                   10009
  374. #define XbWDMx_DGrpNF        10010
  375. #define XbWDMx_MissRP     10011
  376. #define XbWDMx_NoApnd    10012
  377. #define XbWDMx_GrpNtF     10013
  378.  
  379. #define XbWDMx_RDok  0
  380. #define XbWDMx_RFok  0
  381. #define XbWDMx_WFok  0
  382. #define XbWDMx_RGok 0
  383.  
  384.  
  385. #define XbWDMx_ReadMF   0
  386. #define XbWDMx_WriteMF  1
  387. #define XbWDMx_AppendMF 2
  388.  
  389. #define XbWDIf_InitXMS(task) int  XbWDIf_StrtApp(int argc, char *argv[]){\
  390.   _ovrbuffer = 0x1200;\
  391.   _OvrInitExt(0,350000L);\
  392.   return(task(argc,argv));\
  393.   };\
  394.  
  395. #define XbWDIf_InitStd(task)\
  396.   int  XbWDIf_StrtApp(int argc, char *argv[]){\
  397.   return( task(argc,argv));\
  398.   };\
  399.  
  400. #define XbWDTb_SetPara(anz,p1,p2,p3,p4,p5) \
  401.   vp[0] = ((void *)anz);\
  402.   vp[1] = (void*)(p1); \
  403.   vp[2] = (void*)(p2); \
  404.   vp[3] = (void*)(p3); \
  405.   vp[4] = (void*)(p4); \
  406.   vp[5] = (void*)(p5); \
  407.  
  408.  
  409.  
  410. #define XbWDDb_C_PtrToDbI(pp,AP) (XbWDDb_DbIPtr)( (char *)(pp)- (char *)(AP) )
  411.  
  412. /* ======================================================================= */
  413.  
  414. typedef
  415.   int boolean;
  416.  
  417. typedef struct {
  418.   int XA,YA,XB,YB;
  419. #ifdef XbW_SYSDEF_GNU_VERSION
  420.   GrTextOption top;
  421.   MouseEvent kbd_mev;
  422. #endif
  423. #ifdef XbW_SYSDEF_X11_VERSION
  424.   KeySym keysym;
  425.   char key[257];
  426.   Display *dpy;
  427.   Window window;
  428.   GC gc;
  429.   Screen *screen;
  430.   Font font;
  431.   long black,
  432.        blue,
  433.        green,
  434.        cyan,
  435.        red,
  436.        magenta,
  437.        brown,
  438.        lgray,
  439.        dgray,
  440.        lblue,
  441.        lgreen,
  442.        lred,
  443.        lmagenta,
  444.        lcyan,
  445.        yellow,
  446.        white;
  447. #endif
  448.   int is_a_key_waiting;
  449.   } XbWDSy_XbWContxt;
  450.  
  451. #ifdef XbW_SYSDEF_USE_LARGDBK
  452. typedef struct {
  453.   XbWDDb_DbITyp tp;      /* string-typ                       */
  454.   unsigned char len;
  455.   char nmi[1];    /* Name UND INHALT des string       */
  456.   } XbWDDb_DbIStr;
  457. typedef struct {
  458.   XbWDDb_DbITyp tp;      /* Typ des pointers                 */
  459.   XbWDDb_DbIPtr inh;     /* Pointer auf ein Item (vorwaerts) */
  460.   char nm[1];     /* Name des pointers (laenge im typ)*/
  461.   } XbWDDb_DbINPtr;
  462. typedef struct {
  463.   XbWDDb_DbITyp tp;     /* Typ des doubles                  */
  464.   double inh;
  465.   char nm[1];    /* Name des double (laenge im typ) */
  466.   } XbWDDb_DbIDbl;
  467. typedef struct {
  468.   XbWDDb_DbITyp tp;     /* Typ des integer                  */
  469.   int inh;
  470.   char nm[1];    /* Name des integer (laenge im typ) */
  471.   } XbWDDb_DbIInt;
  472. typedef struct {
  473.   XbWDDb_DbITyp tp;      /* Typ des pointers                  */
  474.   XbWDDb_DbIPtr inh;     /* Pointer auf ein Item (rueckwaerts)*/
  475.   char nm[1];     /* Name (laenge im typ)              */
  476.   } XbWDDb_DbIIPtr;
  477. typedef struct {
  478.   XbWDDb_DbITyp tp;      /* Typ des pointers                 */
  479.   XbWDDb_DbIPtr inh;     /* Pointer auf ein Item (vorwaerts) */
  480.   char nm[1];     /* Name des pointers (laenge im typ)*/
  481.   } XbWDDb_DbIFPtr;
  482. typedef struct {
  483.   XbWDDb_DbITyp tp;      /* Typ des pointers                 */
  484.   XbWDDb_DbIPtr inh;     /* Pointer auf den Gruppenanfang    */
  485.   char nm[1];     /* Name des pointers (laenge im Typ)*/
  486.   } XbWDDb_DbIGPtr;
  487. typedef struct {
  488.   XbWDDb_DbITyp tp;     /* Typ des items                    */
  489.   } XbWDDb_DbIVar;
  490. #else
  491. typedef struct {
  492.   XbWDDb_DbITyp tp;      /* string-typ                       */
  493.   unsigned char len;
  494.   char nmi[1];    /* Name UND INHALT des string       */
  495.   } XbWDDb_DbIStr;
  496. typedef struct {
  497.   XbWDDb_DbITyp tp;      /* Typ des pointers                 */
  498.   XbWDDb_DbIPtr inh;     /* Pointer auf ein Item (vorwaerts) */
  499.   char nm[1];     /* Name des pointers (laenge im typ)*/
  500.   } XbWDDb_DbINPtr;
  501. typedef struct {
  502.   XbWDDb_DbITyp tp;     /* Typ des doubles                  */
  503.   double inh;
  504.   char nm[1];    /* Name des double (laenge im typ) */
  505.   } XbWDDb_DbIDbl;
  506. typedef struct {
  507.   XbWDDb_DbITyp tp;     /* Typ des integer                  */
  508.   int inh;
  509.   char nm[1];    /* Name des integer (laenge im typ) */
  510.   } XbWDDb_DbIInt;
  511. typedef struct {
  512.   XbWDDb_DbITyp tp;      /* Typ des pointers                  */
  513.   XbWDDb_DbIPtr inh;     /* Pointer auf ein Item (rueckwaerts)*/
  514.   char nm[1];     /* Name (laenge im typ)              */
  515.   } XbWDDb_DbIIPtr;
  516. typedef struct {
  517.   XbWDDb_DbITyp tp;      /* Typ des pointers                 */
  518.   XbWDDb_DbIPtr inh;     /* Pointer auf ein Item (vorwaerts) */
  519.   char nm[1];     /* Name des pointers (laenge im typ)*/
  520.   } XbWDDb_DbIFPtr;
  521. typedef struct {
  522.   XbWDDb_DbITyp tp;      /* Typ des pointers                 */
  523.   XbWDDb_DbIPtr inh;     /* Pointer auf den Gruppenanfang    */
  524.   char nm[1];     /* Name des pointers (laenge im Typ)*/
  525.   } XbWDDb_DbIGPtr;
  526. typedef struct {
  527.   XbWDDb_DbITyp tp;     /* Typ des items                    */
  528.   } XbWDDb_DbIVar;
  529. #endif
  530.  
  531.  
  532. typedef struct {
  533.   void  *anz;
  534.   char  *nm;
  535.   void  *inh;
  536.   } XbWDDb_AppCStr;
  537. typedef struct {
  538.   void  *anz;
  539.   char  *nm;
  540.   void  *len;      /* LAENGE fuer Strings                       */
  541.   void  *inh;
  542.   } XbWDDb_AppStr;
  543. typedef struct {
  544.   void  *anz;         /* Integer: Anzahl Parameter                     */
  545.   char  *nm;
  546.   void  *inh;
  547.   } XbWDDb_AppInt;
  548. typedef struct {
  549.   void  *anz;         /* Integer: Anzahl Parameter                     */
  550.   char  *nm;
  551.   char  *inh;
  552.   } XbWDDb_AppDBl;
  553. typedef struct {
  554.   void  *anz;         /* Integer: Anzahl Parameter                     */
  555.   char  *nm;
  556.   char  *inh;
  557.   } XbWDDb_AppIPtr;
  558. typedef struct {
  559.   void  *anz;         /* Integer: Anzahl Parameter                     */
  560.   char  *nm;
  561.   char  *inh;
  562.   } XbWDDb_AppNPtr;
  563. typedef struct {
  564.   void  *anz;         /* Integer: Anzahl Parameter                     */
  565.   char  *lnm; /* Liste */
  566.   char  *gnm; /* Gruppe, an die angehaengt wird */
  567.   } XbWDDb_AppFPtr;
  568. typedef struct {
  569.   void  *anz;         /* Integer: Anzahl Parameter                     */
  570.   char  *typstr;
  571.   char  *name;
  572.   void  *laenge;      /* Fuer Strings                                  */
  573.   void  *inhalt;
  574.   } XbWDDb_AppVar;
  575.  
  576. typedef struct {
  577.  void
  578.   *T_ITM_END;                 /* Aktuelles Ende derselben                  */
  579.  XbWDDb_DbIPtr
  580.   ITM_MAX;                    /* Maximale Groesse derselben                */
  581.  XbWDDb_DbIVar   *T_ITM_PRJ;
  582.  XbWDDb_DbIStr   *T_ITM_GRP;     /* Zeiger auf den Namen der aktuellen Gruppe */
  583.  XbWDDb_DbIStr   *T_ITM_SYS;     /* Zeiger auf den Namen des ersten Projektes */
  584.  char    XbWinPath[60];
  585.  char    XbAppPath[60];
  586.  } XbWDDb_Sys;
  587.  
  588. typedef struct{
  589.   char name[40];         /* Name des Projektes */
  590.   char reserviert[200];
  591.   long tab_size;
  592.   char akt_wdw[40];
  593.   XbWDDb_DbIPtr akt_projekt;
  594.   XbWDDb_DbIPtr akt_sys;
  595.   XbWDDb_DbIPtr akt_group;
  596.   XbWDDb_DbIPtr akt_ende;
  597.   XbWDDb_DbIPtr tab_start;
  598.   } XbWDDb_Header;
  599.  
  600. typedef struct {
  601.   char   *nm;
  602.   XbWDDb_DbIPtr *obj;                /* Zeiger auf das erste Objekt dieses Windows*/
  603.   int  *tp;             /* Typ                                       */
  604.   int  *layer;          /* Lage auf dem schirm, z- Ebene             */
  605.   int  *nx;
  606.   int  *ny;             /* Nullpunkt auf dem schirm                  */
  607.   int  *sx;
  608.   int  *sy;             /* Aktuelle Schirmgr"o"se einschl. Rand      */
  609.   int  *wov;            /* wenn von anderem Fenster "uberschrieben   */
  610.   int  *icn;            /* wenn als icon dargestellt                 */
  611.   int  *bkc;            /* Untergrundfarbe                           */
  612.   int  *txc;            /* Farbe des Textes                          */
  613.   int  *dfc;            /* helle Farbe des Rahmens                   */
  614.   int  *bfc;            /* dunkle Farbe des Rahmens                  */
  615.   int  *wfx;            /* Solange Window bearb.wird,nicht verlassen!*/
  616.   int  *wfe;            /* Wenn editiert, wird WaitForMenuExit 1  */
  617.   int  *bd;             /* Background Display                        */
  618.   } XbWDDb_DbIWdw;
  619.  
  620. typedef struct {
  621.   char   *onm;
  622.   char   *odt;            /* Objekt-Display-Typ                        */
  623.   char   *oet;            /* Objekt-Edit-Typ                           */
  624.   int  *XA;
  625.   int  *YA;
  626.   int  *XB;
  627.   int  *YB;             /* Lage auf dem Window                       */
  628.   int  *bkc;            /* Untergrundfarbe                           */
  629.   int  *txc;            /* Farbe des Textes                          */
  630.   int  *dfc;            /* helle Farbe des Rahmens                   */
  631.   int  *bfc;            /* dunkle Farbe des Rahmens                  */
  632.   int  *dst;            /* Display-Status                            */
  633.   int  *est;            /* Edit-Status                               */
  634.   int  *dwd;            /* Draw Window nach edit                     */
  635.   char   *wdw;            /* Zugeordnetes Window                       */
  636.   XbWDDb_DbIVar  *chn;           /* Zeiger auf den Rest des Objektes          */
  637.   XbWDDb_DbIPtr  *nxt;           /* Inhalt des Zeigers auf nächstes Objekt    */
  638.   } XbWDDb_DbIObj;
  639.  
  640. typedef
  641.     enum {pfeil,kreuz,keine} XbWDMs_CurFrm;
  642.  
  643. typedef struct {
  644.    void  *XbWVMf_P;
  645.    int XbWVMf_T;
  646.    char Str[XbWDMf_BfStrL];
  647.    } XbWDMf_AktPar;
  648.  
  649.  
  650. typedef enum{
  651.   Vor,CursorUp,
  652.   CursorDown,
  653.   PageDown,PageUp,
  654.   Weiter,EndInput,
  655.   Egal
  656.   } XbWDEd_NxtTyp;
  657.  
  658. typedef struct {
  659.   int dy;
  660.   char buf[65000l];
  661.   } XbWDGr_VidFram;
  662.  
  663. typedef struct {char *typ; int anz;  void *data; char *name; } XbWDMx_GrpDscr;
  664.  
  665.  
  666. typedef struct { int  *Grp[40];} XbWDIf_GlobDsc;
  667.  
  668.  
  669.  
  670. /* ======================================================================= */
  671.  
  672. int  XbWPSy_EXETaskStartHook(   char *TaskName, XbWDDb_DbIWdw  *TW,XbWDDb_DbIObj  *TO);
  673. int  XbWPSy_DisplayObjectHook(char *ObjectTyp,XbWDDb_DbIWdw  *TW,XbWDDb_DbIObj  *TO);
  674. int  XbWPSy_EditObjectHook(char *ObjectTyp,XbWDDb_DbIWdw  *TW,
  675.           XbWDDb_DbIObj  *TO, int *todisp, int edit,
  676.           int ObjMausXPos, int ObjMausYPos);
  677. int  XbWPSy_MetaCommandHook(   char *Command,  XbWDDb_DbIWdw  *TW, void  *(*para)[], int (*t)[]);
  678. int  XbWPSy_SystemManagerHook(XbWDDb_DbIWdw  *TW);
  679.  
  680. /* ======================================================================= */
  681.  
  682. extern XbWDIf_GlobDsc      XbWVIf_GlbDsc;
  683. #ifndef VAX
  684. extern unsigned            _ovrbuffer;
  685. #endif
  686. #ifdef XbW_SYSDEF_GNU_VERSION
  687. extern long                XbWVSy_DlyLim;
  688. #endif
  689. extern XbWDSy_XbWContxt    XbWVSy_ConTxt;
  690. extern char                XbWVSy_SysPath[60];
  691. extern char                XbWVSy_AppPath[60];
  692. extern char                XbWVSy_PrjPath[60];
  693. extern int               XbWVWd_AClos;
  694. extern int               XbWVWd_RedrawON;
  695. extern char                XbWVTb_PTS[XbWDTb_PckTLen];
  696. extern char                XbWVSy_DosCmd[265];
  697. extern char                XbWVSy_MfName[265];
  698. extern int               XbWVWd_OldMsg;
  699. extern time_t              XbWVSy_Time;
  700. extern XbWDDb_DbIVar  *XbWVDb_AkDbkEl;     /* Aktuelle Variable für XbWFDb_GetNum etc    */
  701. extern XbWDDb_DbIVar  *XbWVDb_ActGrp1;     /* Akt. Var.; aber OHNE RECURSION         */
  702. extern XbWDDb_DbIVar  *XbWVDb_ActGrp2;  /* Akt. Var. für XbWFDb_VarInh                */
  703. extern int               XbWVDb_FndNum;
  704. extern XbWDDb_Sys     *XbWVDb_DbkStrt;
  705. extern XbWDDb_Sys     *XbWVDb_DbkStrtMem;
  706. extern int               XbWVWd_Activ;
  707. extern int               XbWVWd_Hgt;
  708. extern int               XbWVWd_Wdt;
  709. extern XbWDDb_DbIWdw       XbWVWd_W;    /* Aktives Display-Window */
  710. extern XbWDDb_DbIObj       XbWVOb_O;    /* Aktives Objekt  */
  711. extern int               XbWVWd_OldMsg;
  712. extern int               XbWVGr_Black;
  713. extern int               XbWVGr_Blue ;
  714. extern int               XbWVGr_Green;
  715. extern int               XbWVGr_Cyan ;
  716. extern int               XbWVGr_Red  ;
  717. extern int               XbWVGr_Magenta   ;
  718. extern int               XbWVGr_Brown     ;
  719. extern int               XbWVGr_LGray ;
  720. extern int               XbWVGr_DGray  ;
  721. extern int               XbWVGr_LBlue ;
  722. extern int               XbWVGr_LGreen;
  723. extern int               XbWVGr_LCyan ;
  724. extern int               XbWVGr_LRed  ;
  725. extern int               XbWVGr_LMagenta;
  726. extern int               XbWVGr_Yellow;
  727. extern int               XbWVGr_White ;
  728. #ifndef XbW_SYSDEF_X11_VERSION
  729. extern union REGS          XbWVMs_regs;
  730. #endif
  731. extern void far           *XbWVMs_bits ;
  732. extern int               XbWVMs_axa;
  733. extern int               XbWVMs_aya;
  734. extern  boolean            XbWVMs_Rechts;
  735. extern  boolean            XbWVMs_Links;
  736. extern  boolean            XbWVMs_Rauf;
  737. extern  boolean            XbWVMs_Runter;
  738. extern  boolean            XbWVMs_Bewegt;
  739. extern  boolean            XbWVMs_Button;
  740. extern  boolean            XbWVMs_LButt;
  741. extern  boolean            XbWVMs_RButt;
  742. extern  boolean            XbWVMs_MButt;
  743. extern  int              XbWVMs_XPos;
  744. extern  int              XbWVMs_YPos;
  745. extern  int              XbWVMs_cxa;
  746. extern  int              XbWVMs_cya;
  747. extern  int              XbWVMs_CX;
  748. extern  int              XbWVMs_CY;
  749. extern  XbWDMs_CurFrm      XbWVMs_CFrm;
  750. extern  boolean            XbWVMs_CSet;
  751. extern int               XbWVMs_XSense;
  752. extern int               XbWVMs_YSense;
  753. extern int               XbWVMs_Speed;
  754. extern int               XbWVOb_MovOK;
  755. extern XbWDDb_DbIVar  *XbWVOb_GOPlv;
  756. extern XbWDDb_DbIVar  *XbWVOb_GOPao;
  757. extern char               *XbWVOb_GOPnm;
  758. extern char                XbWVOb_GTxt[60];
  759. extern int               XbWVOb_X;
  760. extern int               XbWVOb_Y;
  761. extern int               XbWVOb_x;
  762. extern int               XbWVOb_y;
  763. extern int               XbWVOb_ox;
  764. extern int               XbWVOb_oy;
  765. extern int               XbWVOb_EdLvl;
  766. extern fpos_t              XbWVOb_pos;
  767. extern FILE               *XbWVOb_afil;
  768. extern XbWDDb_DbIVar  *XbWVOb_mgr;
  769. extern XbWDDb_DbIVar  *XbWVOb_mao;
  770. extern char               *XbWVOb_agr;
  771. extern char               *XbWVOb_aon;
  772. extern int               XbWVMf_Cerr;
  773. extern void           *XbWVMf_P[XbWDMf_MaxPar];
  774. extern int               XbWVMf_C;
  775. extern char                XbWVMf_gn[130];
  776. extern char                XbWVMf_ln[130];
  777. extern char                XbWVMf_nn[130];
  778. extern char                XbWVMf_gn[130];
  779. extern char                XbWVMf_ln[130];
  780. extern char                XbWVMf_nn[130];
  781. extern char                XbWVMf_jln[140];
  782. extern int               XbWVMf_jtl;
  783. extern int               XbWVMf_mlv;
  784. extern int               XbWVIf_Debug;
  785. extern char               *XbWVMf_com[XbWDMf_MaxCmd];
  786. extern char               *XbWVMf_af;
  787. extern int              *XbWVMf_az;
  788. extern int               XbWVMf_dmf;
  789. extern int               XbWVMf_prd;
  790. extern int               XbWVMf_Cerr;
  791. extern void           *XbWVMf_P[XbWDMf_MaxPar];
  792. extern int               XbWVMf_T[XbWDMf_MaxPar];
  793. extern char                XbWVMf_B[XbWDMf_MaxPar*XbWDMf_BfStrL];
  794. extern char                XbWVMf_eof;
  795. extern int               XbWVMf_C;
  796. extern XbWDMf_AktPar ( *XbWVMf_aP)[];
  797. extern int               XbWVMf_CErr;
  798. extern XbWDEd_NxtTyp       XbWVEd_nxt;
  799. extern int               XbWVEd_CrFrm;
  800. extern int               XbWVEd_CrKey;
  801. extern int               XbWVEd_CrFrm;
  802. extern int               XbWVEd_CrKey;
  803. extern XbWDEd_NxtTyp       XbWVEd_nxt;
  804. extern boolean             XbWVEd_ins;
  805. extern int               XbWVEd_xhp;
  806. extern int               XbWVEd_yhp;            /* Position des Fragetextes               */
  807. extern char                XbWVEd_hdr[35];               /* Fragetext                              */
  808. extern int               XbWVEd_hcol;                   /* Farbe der Frage                        */
  809. extern int               XbWVEd_xa;
  810. extern int               XbWVEd_ya;        /* Linke obere Ecke des Editierfensters   */
  811. extern int               XbWVEd_xb;
  812. extern int               XbWVEd_yb;        /* Rechte Untere...                       */
  813. extern char                XbWVEd_sst[257];              /* Zu gredierender String                 */
  814. extern unsigned char       XbWVEd_scol;                /* Farbe desselben                        */
  815. extern char                XbWVEd_zstr[255];             /* Der Puffer                             */
  816. extern unsigned char       XbWVEd_zc;
  817. extern unsigned char       XbWVEd_zf;    /* Ein Zeichen                            */
  818. extern int               XbWVEd_c;
  819. extern int               XbWVEd_send;
  820. extern int               XbWVEd_crpos;
  821. extern int               XbWVEd_cpos;                   /* Ein paar Zeiger                        */
  822. extern int               XbWVEd_lcnt;                 /* Zeichenz"ahler                         */
  823. extern int               XbWVEd_vpos;
  824. extern int               XbWVEd_npos;     /* Noch mehr Zeiger                       */
  825. extern int               XbWVEd_spos;
  826. extern int               XbWVEd_mvport;
  827. extern char                XbWVEd_coptxt[255];           /* Noch ein Puffer                        */
  828. extern struct viewporttype XbWVTb_ViewPLst[XbWDTb_MxVwPrt];
  829. extern int               XbWVTb_ViewPZ;
  830. extern int               XbWVTb_VPX;
  831. extern int               XbWVTb_VPY;
  832. extern int               XbWVTb_VPx;
  833. extern int               XbWVTb_VPy;
  834. extern char               *XbWVWd_Name[XbWDWd_MaxWdw+1];
  835. extern XbWDDb_DbIVar  *XbWVWd_Grp[XbWDWd_MaxWdw+1];
  836. extern int               XbWVWd_MaxReg;
  837. extern int               XbWVWd_FoundNo;
  838. extern int               XbWVWd_DrawNr;
  839. extern int               XbWVWd_RedrawON;
  840. extern XbWDDb_DbIWdw       XbWVWd_LastDsp;
  841. extern XbWDDb_DbIWdw       XbWVWd_W;           /* Aktives Display-Window */
  842. extern int               XbWVWd_AClos;
  843. extern time_t              XbWVWd_Time;
  844. extern int           XbWVWd_ADspNr;
  845. extern char                XbWVWd_CStr[100];
  846. extern int               XbWVWd_CErr;
  847. extern char               *XbWVMx_atxt;
  848. extern char               *XbWVMx_btxt;
  849. extern int               XbWVMx_cmd;
  850. extern int               XbWVMx_p1;
  851. extern int               XbWVMx_p2;
  852. extern int               XbWVIDEO_XA;
  853. extern int               XbWVIDEO_XB;
  854. extern int               XbWVIDEO_YA;
  855. extern int               XbWVIDEO_YB;
  856. extern char                XbWVDb_AktNam[16];
  857. extern long                XbWVDb_PrjSize;
  858. extern XbWDDb_DbIVar  *XbWVDb_AktDObj;
  859. extern XbWDDb_DbIVar  *XbWVDb_AktDKey;
  860. extern int               XbWVDb_DbkStat;
  861. extern int               XbWVDb_DbkFile;
  862. extern int               XbWVDb_FndNum;
  863. extern XbWDDb_Sys     *XbWVDb_DbkStrt;
  864. extern XbWDDb_DbIVar  *XbWVDb_AkDbkEl;
  865. extern XbWDDb_DbIVar  *XbWVDb_ActGrp1;
  866. extern XbWDDb_DbIVar  *XbWVDb_ActGrp2;
  867. extern char               *XbWVMf_com[];
  868. extern char               *XbWVMf_LCmd;
  869. extern time_t             XbWVSy_AltChkActTime;
  870. extern char XbWVSy_ExecNameHook[60];
  871. extern char XbWVMs_PtrHand[];
  872. extern char XbWVMs_PtrArrow[];
  873. extern char XbWVMs_PtrClock[];
  874. extern char XbWVMs_PtrStop[];
  875.  
  876. #ifdef XbW_SYSDEF_GNU_VERSION
  877. extern GrCursor *XbWVMs_PtrPtrClock;
  878. extern GrCursor *XbWVMs_PtrPtrArrow;
  879. extern GrCursor *XbWVMs_PtrPtrHand;
  880. extern GrCursor *XbWVMs_PtrPtrStop;
  881. extern GrCursor *XbWVMs_PtrActualPtr;
  882. #endif
  883. #ifdef XbW_SYSDEF_X11_VERSION
  884. extern Cursor XbWVMs_PtrPtrClock;
  885. extern Cursor XbWVMs_PtrPtrArrow;
  886. extern Cursor XbWVMs_PtrPtrHand;
  887. extern Cursor XbWVMs_PtrPtrStop;
  888. extern Cursor XbWVMs_PtrActualPtr;
  889. #endif
  890. #ifdef XbW_SYSDEF_TC3_VERSION
  891. extern void  *XbWVMs_PtrPtrClock;
  892. extern void  *XbWVMs_PtrPtrArrow;
  893. extern void  *XbWVMs_PtrPtrHand;
  894. extern void  *XbWVMs_PtrPtrStop;
  895. extern void  *XbWVMs_PtrActualPtr;
  896. #endif
  897.  
  898. extern char *XbWVGr_ColorTexte[];
  899. extern unsigned long int XbWVGr_ColorValues[64];
  900.  
  901. extern char XbWVSy_PrjName[];
  902.  
  903.  
  904. #ifdef XbW_SYSDEF_X11_VERSION
  905. extern int XbW_X11_ScreenWidth;
  906. extern int  XbW_X11_ScreenHeight;
  907. #endif
  908.  
  909.  
  910.  
  911. int    XbWApp_StartupApplication(int argc,char *argv[]);
  912.  
  913. extern char *XbWVSy_DebugLinePos;
  914. extern char *XbWVSy_DebugLine;
  915. extern char *XbWVSy_DebugCommand;
  916.  
  917.  
  918.  
  919. void  XbWSMs_DFramON(int xa,int ya,int xb,int yb,int col);
  920. void  XbWSMs_FramON(int xa,int ya,int xb,int yb,int col);
  921. void  XbWSGr_ResMode(void);
  922. void  XbWSMs_DrInit(void);
  923. void  *XbWSMs_SetStopCursor(void);
  924. void  *XbWSSy_AlocMem(unsigned long a, unsigned long b);
  925. void  XbWSWd_Resize(void  *(*p)[]);
  926. void  XbWFSY_DoXFlush(void);
  927. void  XbWSOS_Sound(int freq);
  928. int  XbWFDb_CreateArray(void  *(*p)[], int (*t)[]);
  929.  
  930. char *strupr(char *sstr);
  931. char *itoa(int nr, char *target, int radix);
  932.  
  933.  
  934.  
  935. #include "xf.h"
  936.  
  937. /*{{{F xf.h*/
  938. /*:::F xf.h*/
  939. /*}}}  */
  940.  
  941.  
  942. /* ================= Ende von XBW.H ==================================== */
  943.  
  944.  
  945.  
  946.